"""
大帅逼：Cry Wolf
cpdd:287317579
author：28731
时间：2022/9/6 10:03
"""
# 导入第三方库
from xml.etree import ElementTree

# 实例化一个ElementTree对象，并打开一个xml文件
wob = ElementTree.ElementTree()
tree = wob.parse('./test.xml')

# find: 查找单个节点,如果对应的xpath路径匹配到多个节点，也只会返回第一个节点对象
e1 = tree.find('./node1/subnode1')
print(e1)
# 结果如下：<Element 'subnode1' at 0x0000028494664098>

# findall: 查找多个节点，返回包含匹配到的所有节点对象的列表
e2 = tree.findall('./node3/Item')
print(e2)
# 结果如下：[<Element 'Item' at 0x000002CBFFD09E08>, <Element 'Item' at 0x000002CBFFD1DEF8>, <Element 'Item' at
# 0x000002CBFFD1DF48>]

# xpath中添加属性查找节点
e3 = tree.findall('./node3/Item[@ID="1"]')
print(e3)
# 结果如下：[<Element 'Item' at 0x0000028141259E08>]

# 获取对应节点的属性值
e4 = tree.find('./node3/Item[@ID="2"]')
print(e4.attrib)
# 结果如下：{'ID': '2', 'type': 'sss'}。返回包含所有“属性名:属性值”的字典

# 获取对应节点的text
e5 = tree.find('./node2')
print(e5.text)
# 结果如下：hehe。

# 获取对应节点的标签名
e6 = tree.find('./node3/Item[@ID="2"]')
print(e6.tag)
# 结果如下：Item。
